package com.cr.admin.business.user.service.impl;

import com.cr.admin.business.user.mapper.UserMapper;
import com.cr.admin.business.user.pojo.entity.User;
import com.cr.admin.business.user.pojo.param.UserAddParam;
import com.cr.admin.business.user.pojo.param.UserUpdateParam;
import com.cr.admin.business.user.pojo.query.UserQuery;
import com.cr.admin.business.user.pojo.vo.UserVO;
import com.cr.admin.business.user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

@Slf4j
@Service
public class UserServiceImpl implements UserService {

//    @Autowired
//    private UserMapper userMapper;
    @Override
    public List<UserVO> selectUser(UserQuery userQuery) {
        // 直接从数据库查询 User 实体列表，并在服务层将其转换为 UserVO 列表
//        List<UserVO> userList = userMapper.selectUser(userQuery);
//        List<UserVO> userVOList = userList.stream()
//                .map(user -> {
//                    UserVO userVO = new UserVO();
//                    userVO.setId(user.getId());
//                    userVO.setUsername(user.getUsername());
//                    userVO.setEmail(user.getEmail());
//                    // 设置其他属性...
//                    return userVO;
//                })
//                .collect(Collectors.toList());
//        return userVOList;
        return Collections.emptyList();
    }

    @Override
    public void saveUser(UserAddParam userAddParam) {
//        // 创建 User 实体并设置属性
//        User user = new User();
//        user.setUsername(userAddParam.getUsername());
//        user.setEmail(userAddParam.getEmail());
//        // 设置其他属性...
//
//        // 保存到数据库
//        userMapper.insert(user);
    }

    @Override
    public void resetPassword(Long userId) {
        // 更新指定用户的密码
//        userMapper.resetPassword(userId);
    }

    @Override
    public void deleteUser(Long userId) {
        // 删除指定用户
//        userMapper.deleteById(userId);
    }

    @Override
    public void updateStatus(Long userId, String status) {
        // 更新指定用户的状态
//        userMapper.updateStatus(userId, status);
    }

    @Override
    public void updateById(UserUpdateParam userUpdateParam) {
//        // 查找 User 实体并设置属性
//        User user = userMapper.selectById(userUpdateParam.getId());
//        if (user != null) {
//            user.setUsername(userUpdateParam.getUsername());
//            user.setEmail(userUpdateParam.getEmail());
//            // 设置其他属性...
//
//            // 更新数据库
//            userMapper.updateById(user);
//        }
    }
}

